
//////////////////////////////////////////////////////////////////////
#ifndef _MSG_HANDLE_H_
#define _MSG_HANDLE_H_


#include "functor/SubscriberSlot.h"

namespace KEngine
{
	class MsgHandle : public KCore::SubscriberSlot
	{
	public:
		MsgHandle():SubscriberSlot()
		{
		}

		MsgHandle(KCore::FreeFunctorSlot::Function* func):SubscriberSlot(func)
		{
		}


		template<typename T>
		MsgHandle(const KCore::FunctorReferenceBinder<T>& binder) : SubscriberSlot(binder)
		{
		}

		template<typename T>
		MsgHandle(const T& functor) : SubscriberSlot(functor)
		{
		}


		template<typename T>
		MsgHandle(T* functor) : SubscriberSlot(functor)
		{
		}

		template<typename T>
		MsgHandle(bool (T::*function)(const KCore::Args*), T* obj) :SubscriberSlot(function, obj)
		{
		}
	
	};

};

#endif

